1. Field of the Invention
The present invention relates generally to computer networks, and more particularly, to methods and systems for dynamically determining effective bandwidth in a computer network.
2. Description of the Related Art
Communication networks for providing digital communication links have become very commonplace. Such communication networks can be found in telephone and other wired and wireless communication systems and can link multiple computers (e.g., LAN, WAN, Internet, etc.). One of the many common aspects of these different communication networks is that the available bandwidth (i.e., effective data throughput) is limited by many factors. These limiting factors include, among others, network design, throughput on each of the applicable network connections between any two nodes (links), length of each link, number of client nodes and server nodes on the network, and the respective data demands for each node.
FIG. 1 is a block diagram of a typical computer network 100. The computer network 100 includes one or more server computers 120A-n and one or more client computers 110A-n. The server computers 120A-n and the client computers 110A-n are connected via network connections (links) 102, 104A-n and 106A-n. Each of the links 102, 104A-n and 106A-n can include one or more of a cable (i.e., hardwired, coax, twisted-pair, etc.), a wireless (e.g., microwave, IEEE 802.11, Bluetooth, wireless LAN, etc.) and any other type of data connection links.
Often the effective bandwidth is significantly less than the maximum capabilities of the links 102, 104A-n and 106A-n. By way of example, the links 102, 104A and 106A can have a 10 Gbit theoretical data throughput capability. However, the actual effective bandwidth between client 110A and server 120A is typically significantly less than 10 Gbit due to additional data traffic to or from nodes other than client 110A and server 120A being transmitted across links 102 and 106A. By way of example, the additional data being transmitted across links 102 and 106A can include data demands from clients 110B-110n on the server 120A. The actual effective bandwidth between client 110A and server 120A can also be limited by network overhead requirements (e.g., packet and routing information).
When a computer network is installed or constructed the computer network is tested to determine a “typical bandwidth” that is a static measurement of the effective bandwidth that should typically be available to the various nodes on the network. The network nodes can then predictably expect the typical bandwidth to be available for their respective uses. Unfortunately, the actual available bandwidth (effective bandwidth) can vary considerably due to various dynamic conditions of the network. The dynamic conditions of the network can include, for example, the data transmission demands across each of the links 102, 104A-n and 106A-n. The applications 115A-n and 125A-n operating on the various clients 110A-n and servers 120A-n can also cause the effective bandwidth to vary substantially higher and lower than the typical bandwidth measurement. The actual physical routing of each of the links 102, 104A-n and 106A-n can also change dynamically. By way of example, route of link 106A, 102 and 104A between nodes 120A and 110A can initially be routed through a first set of routers. As the traffic demands or other availability issues impact one of the first set of routers, a second set of routers may be used to maintain the link 106A, 102 and 104A between nodes 120A and 110A. As the routing changes, the bandwidth may also change.
By way of example, a very high bandwidth may be needed between client 110A and server 120n to support a streaming media being delivered from application 125n to application 115A. At the same time a relatively small bandwidth is needed by a database search application 115n running on client computer 110n and searching a database 125A on server 120A. Conversely, application 115B can also be a high bandwidth demand application. In a typical network, the high bandwidth demands by applications 115A and 115B are each set to use the total typically available bandwidth. However, when both applications 115A and 115B require high bandwidth demands, then the total typically available bandwidth cannot be dedicated to both applications. Therefore, one or more of the applications 115A-n and 125A-n cannot operate in an optimized mode. As a result, data transfers between the respective nodes may be delayed and data packets may be lost, requiring replacement data packets to be sent consuming even more of the bandwidth.
In view of the foregoing, there is a need for a system and method for dynamically determining effective bandwidth, in real time (or near real time) as the effective bandwidth varies.